package com.yugong.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.yugong.entity.dto.Business;
import com.yugong.entity.vo.request.BusinessRequestVO;
import com.yugong.entity.vo.request.StudentRequestVO;
import com.yugong.entity.vo.response.BusinessListResponseVO;
import com.yugong.entity.vo.response.OrderClassListResponseVO;
import com.yugong.entity.vo.response.StudentListResponseVO;

import java.util.List;

/**
 * 企业业务逻辑接口
 *
 * @author yugong
 * @date 2024/2/10
 */
public interface BusinessService extends IService<Business> {
    /**
     * 查询企业信息
     *
     * @return 企业信息
     */
    List<BusinessListResponseVO> findBusiness();

    /**
     * 根据企业名查询企业信息
     *
     * @param pageNum      当前页
     * @param pageSize     当前页数据总数
     * @param businessName 企业名
     * @return 企业信息
     */
    PageInfo<BusinessListResponseVO> findBusiness(Integer pageNum, Integer pageSize, String businessName);

    /**
     * 修改企业
     *
     * @param businessRequestVO 企业请求实体类
     * @return 数据库影响行数
     */
    int updateBusiness(BusinessRequestVO businessRequestVO);

    /**
     * 删除企业
     *
     * @param businessNo 企业号
     * @return 数据库影响行数
     */
    int deleteBusiness(String businessNo);

    /**
     * 查询企业个人信息
     *
     * @param businessNo 企业号
     * @return 企业个人信息
     */
    BusinessListResponseVO businessInfo(String businessNo);

    /**
     * 修改信息
     *
     * @param businessRequestVO 企业请求实体类
     * @return 数据库影响行数
     */
    int updateInfo(BusinessRequestVO businessRequestVO);

    /**
     * 查看企业自己的学生评价
     *
     * @param pageNum     当前页
     * @param pageSize    当前页总数
     * @param studentName 姓名
     * @param businessNo  企业号
     * @return 企业自己的学生评价
     */
    PageInfo<StudentListResponseVO> findStudent(Integer pageNum, Integer pageSize, String studentName, String businessNo);

    /**
     * 企业录用
     *
     * @param studentRequestVO 学生请求实体类
     * @return 响应码
     */
    int employmentStudent(StudentRequestVO studentRequestVO);

    /**
     * 查询订单班
     *
     * @param pageNum        当前页
     * @param pageSize       当前页个数
     * @param orderClassName 班名
     * @param businessNo     企业号
     * @return 订单班
     */
    PageInfo<OrderClassListResponseVO> findOrderClass(Integer pageNum, Integer pageSize, String orderClassName, String businessNo);
}
